<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        /*
        闭包：
        闭：关闭，封闭的意思，不让外界访问
        包：包裹

        作用域链：内部作用域可以访问外部作用域，反之 外部作用域不能访问内部作用域

        如果外部作用域 希望可以访问到 内部作用域的数据

        方法一：通过 return 返回 内部作用域（函数作用域）的数据
        方法二：闭包
        */

        function sum() {
            var s = 10 + 20;
            return s;
        }
        var num = sum();
        console.log(num);

        //题目一
        /*
        var a = new Object();
        var b = new Object();
        consloe.log(a == b);//false
        */
        console.log({} == {});//false

        function fn() {
            return {};
        }
        
        var a = fn();
        var b = fn();

        console.log(a == b);//false
 
        function fun() {
            var demo = {};
            function foo() {
                //这个方法 会访问外部作用域 的 demo变量
                return demo;
            }
            return foo;
        }
        
        var fn1 = fun();

        var demo1 = fn1();
        var demo2 = fn1();
        console.log(demo1 == demo2);//true
        
    </script>
</body>
</html>